/**
 * 文件名：@SecurityProcessorChainInterceptor.java <br/>
 * 包名：cn.efunbox.afw.web.security <br/>
 * 项目名：afw-web <br/>
 * @author xtwin <br/>
 */
package cn.efunbox.afw.web.security;

import java.util.Collections;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.efunbox.afw.web.security.processor.SecurityProcessor;

/**
 * 类名：SecurityProcessorChainInterceptor  <br />
 *
 * 功能：安全处理器链拦截器
 *
 * @author xtwin <br />
 * 创建时间：2016年8月4日 上午10:19:54  <br />
 * @version 2016年8月4日
 */
public class SecurityProcessorChainInterceptor extends AbstractSecurityInterceptor {
	
	// 安全处理器链
	protected List<SecurityProcessor> chains = Collections.emptyList();

	/**
	 * 功能: <br/>
	 * 
	 * 重写：xtwin <br/>
	 * 
	 * @version ：2016年8月4日 上午10:20:05<br/>
	 * 
	 * @param request
	 * @param response
	 * @param handler
	 * @throws Exception <br/>
	 * @see cn.efunbox.afw.web.security.AbstractSecurityInterceptor#doSecurity(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object)
	 */
	@Override
	protected void doSecurity(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
		for (SecurityProcessor processor : chains) {
			// 执行权限处理
			processor.process(request, response, handler);
		}
	}

	/**
	 * @version 2016年8月4日-上午10:23:53
	 */
	public void setChains(List<SecurityProcessor> chains) {
		this.chains = chains;
	}
}
